這是第一次在這裡發文,這是一篇記錄自己在寫php的時候遇到的問題紀錄與找到的解決方法。
遇到的問題:按下按鈕之後要呼叫寫在同一頁的Javascript function,卻不知道要如何傳值。
之前網路上查到的方式幾乎都是使用另外一個頁面去傳值,但是都不符合自己的需求,所以嘗試了這個方法,結果是可行的。
如果想要利用javascript宣告的function,將php裡面宣告的變數num印出來的話(或是做其他事情),有以下步驟:
以下是範例:
<?php $num = 10; ?><!--在php裡面宣告一個變數。-->
<!--使用按鈕呼叫script裡面的function print,並加上php echo $num傳過去。-->
<input type="button", value="test, click me" onclick = "print(<?php echo $num; ?>)">
<script>//script可以寫在同一頁的任何地方。
function print(num){//在javacript的函式寫說要接一個變數,然後以彈跳式式窗alert顯示。
alert(num);//以彈跳式式窗alert顯示。
}
</script>
謝謝大家耐心地觀看。
通常這種情境,應該是 PHP 有一支 API 供 JS 去呼叫,透過 Ajax 的方式來取得值。
用 jQuery 來說明的話,模擬的 code 可能長這樣:
<script>
$(function(){
function print(){
$.getJSON("getNum.php",function(data){
alert(data.num);
})
}
});
</script>
然後 PHP API getNum.php 的簡單的作法為:
<?php
$data = array("num" =>10);
echo json_encode($data);
這樣前、後端的 code 就不會混在同一頁裡面,比較方便讓前後端工作分開來。
謝謝你的建議,對我幫助很大~
token 可能就直接夾在裡面了
<form>
<input type='hidden' name='token' value='<?php echo $token;?>'>
<!--other inputs here-->
<input type='submit' value='送出'>
</form>
如果要直接放 js 變數
<script>
var token='<?php echo $token;?>';
</script>